#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/wait.h>

int main() {
	char buf[1024];
	pid_t pid;
	int status;

	printf("%% ");
	while (fgets(buf,1024,stdin) != NULL) {
		if (buf[strlen(buf) - 1] == '\n')
			buf[strlen(buf) - 1] = 0;
		if ((pid = fork()) < 0) {
			printf("fork error: %s\n",strerror(errno));
			return -1;
		}
		else if (pid == 0) {
			execlp(buf, buf, (char*)0);			
			printf("execlp error: %s\n",strerror(errno));
			return -1;
		}

		if ((pid=waitpid(pid,&status,0)) < 0)	{
			printf("waitpid error: %s\n",strerror(errno));
			return -1;
		}

		printf("%% ");
	}
	return 0;
}